package com.minglead.crawler.service;

import com.minglead.crawler.entity.YqLabelScoreEntity;

import java.util.List;

public interface YqModelAnalysisService {

    /**
     * 行业分析
     * @param input 文件路径或单篇文章
     * @param isSingle 是否为单篇文章
     * @return 结果对象
     */
    List<List<YqLabelScoreEntity>> getDomain(String input, boolean isSingle);

    /**
     * 行业分析
     * @param input 文件路径
     * @return 结果文件路径
     */
    String getDomain(String input);

    /**
     * 情感分析
     * @param input 文件路径或单篇文章
     * @param isSingle 是否为单篇文章
     * @return 结果对象
     */
    List<List<YqLabelScoreEntity>> getSentiment(String input, boolean isSingle);

    /**
     * 情感分析
     * @param input 文件路径
     * @return 结果文件路径
     */
    String getSentiment(String input);

    /**
     * 类别分析
     * @param input 文件路径或单篇文章
     * @param topN 输出得分最高的前n个类别
     * @param isSingle 是否为单篇文章
     * @return 结果对象
     */
    List<List<YqLabelScoreEntity>> getThutct(String input, int topN, boolean isSingle);

    /**
     * 类别分析
     * @param input 文件路径
     * @param topN 输出得分最高的前n个类别
     * @return 结果文件路径
     */
    String getThutct(String input, int topN);

    /**
     * 关键词分析
     * @param input 文件路径或单篇文章
     * @param topN 输出得分最高的前n个类别
     * @param minWordNum 单个关键词的最小中文数
     * @param isSingle 是否为单篇文章
     * @return 结果对象
     */
    List<List<YqLabelScoreEntity>> getKeyword(String input, int topN, int minWordNum, boolean isSingle);

    /**
     * 关键词分析
     * @param input 文件路径
     * @param topN 输出得分最高的前n个类别
     * @param minWordNum 单个关键词的最小中文数
     * @return 结果文件路径
     */
    String getKeyword(String input, int topN, int minWordNum);
}
